什麼是 Celery 任務?
在 Celery 中,任務是異步執行的工作單位。每個任務都是一個獨立的 Python 函數,可以接受任意數量的參數並返回結果。讓我們來看一個實際的例子:
celery_example.py
from celery import Celery
app = Celery('celery_example', broker='pyamqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
在這個例子中,我們定義了一個名為 add 的 Celery 任務,該任務接受兩個參數 x 和 y,並返回它們的總和。
如何執行 Celery 任務?
要執行 Celery 任務,我們可以使用 delay 方法。這個方法允許我們以異步方式呼叫 Celery 任務並取得結果。
以下是一個示例:
from celery_example import add
result = add.delay(4, 6)
print(result.get())
在這個代碼中,我們使用 add.delay(4, 6) 來呼叫 add 任務,並傳遞兩個參數 4 和 6。接著,我們使用 result.get() 來取得任務的結果。
當你執行這個代碼時,你應該會看到 10 被打印出來,這是 add 任務的返回值。
傳遞和處理參數
Celery 任務可以接受任意類型的參數,包括字符串、數字、列表等。你可以根據你的需求自由定義任務的參數和返回值。
要注意,Celery 的任務參數應該是可序列化的,這樣它們才能在不同的進程或機器上傳遞。